package kube_pod

type PodPortRequest struct {
	PodID         int64  `json:"pod_id"`
	ContainerPort int32  `json:"container_port"`
	Protocol      string `json:"protocol"`
}

type PodEnvRequest struct {
	PodID    int64  `json:"pod_id"`
	EnvKey   string `json:"env_key"`
	EnvValue string `json:"env_value"`
}

type PodRequest struct {
	// 使用gorm框架 使用ID作为主键
	ID           int64  `json:"id"`
	PodName      string `json:"pod_name"`
	PodNamespace string `json:"pod_namespace"`
	// POD所属地区ID
	PodAreaId string `json:"pod_area_id"`
	// POD 所属K8S集群ID
	PodClusterId string `json:"pod_cluster_id"`
	// POD 所属机器ID
	PodMachineId string `json:"pod_machine_id"`
	// POD 所属节点ID
	PodNodeName string `json:"pod_node_name"`
	// POD 所属租户ID
	PodTenantId string `json:"pod_tenantId_id"`
	// POD 所属平台用户ID
	PodCustomerId string `json:"pod_customer_id"`
	// POD 使用CPU的数量, CPU最小值（资源可能是需要计费的）
	PodCpuMin float32 `json:"pod_cpu_min"`
	// POD 使用CPU的数量，CPU最大值
	PodCpuMax float32 `json:"pod_cpu_max"`
	// 副本数量 默认均为1
	PodReplicas int32 `json:"pod_replicas"`
	// POD 使用的内存最小值
	PodMemoryMin float32 `json:"pod_memory_min"`
	// POD 使用的内存最大值
	PodMemoryMax float32 `json:"pod_memory_max"`
	// POD 容器GPU总量
	PodGPUCount int32 `json:"pod_gpu_count"`
	// POD SSH明文密码
	PodSSHPassword string `json:"pod_ssh_password"`
	// POD 用户SSH公钥信息
	PodSSHPublicKey string `json:"pod_ssh_public_key"`
	// POD 开放的端口
	PodPort []PodPortRequest `json:"pod_port"`
	// POD 使用的环境变量
	// 会常常使用，应用最多
	PodEnv []PodEnvRequest `json:"pod_env"`
	// 镜像拉取策略
	// Always: 总是拉取null
	// IfNotPresent: 默认值,本地有则使用本地镜像,不拉取
	// Never:只使用本地镜像,从不拉取
	PodPullPolicy string `json:"pod_pull_policy"`
	// 镜像重启策略
	PodRestart string `json:"pod_restart"`
	// pod的发布策略
	PodType string `json:"pod_type"`
	// 使用的镜像名称+tag
	PodImage string `json:"pod_image"`
	// 挂盘地址
	PodHostPath string `json:"pod_host_path"`
}

type PodResponse struct {
	ContainerName string `json:"container_name"`
	PodName       string `json:"pod_name"`
	Created       bool   `json:"created"`
	PodClusterId  string `json:"pod_cluster_id"`
	PodNamespace  string `json:"pod_namespace"`
}
